Nowadays in the design of microprocessors and electronic systems, the protocol of data transmission regulates that when bus mastering switches, a turn around time is added in case of bus contention.
Refer to FIG. 1, which illustrates a turn around time which prevents bus contention. A and B represent A drive and B drive respectively wherein A drive and B drive both adopt tri-state I/O ports and share bus 10. A_OE and B_OE represent output enable signal of A drive and output enable signal of B drive respectively. During period 11, A_OE is high which represents that A drive is enabled and transmits data or commands through bus 10. And period 12 shows a turn around time which prevents bus contention when bus mastering of bus 10 switches from A drive to B drive. During period 12, A_OE is high then goes low which represents A drive turns to be disabled. Therefore, during period 13, B_OE is low then goes high which also represents that B drives turns to be enabled and acquires bus mastering of bus 10. Hence, B drive transmits data or commands through bus 10.
A turn around time is indeed needed to prevent bus contention when bus mastering of bus 10 switches under the present circuit structures of the tri-state I/O port adopted by A drive and B drive.
Refer to FIG. 2, which illustrates circuit diagrams of conventional tri-state I/O ports adopted by A drive and B drive. Data of A drive (A data) and output enable signal of A drive (A_OE) control ON/OFF of transistor 213 by a NAND component 210. Moreover, output enable signal of A drive (A_OE) which goes through a NOT component 212 first and data of A drive (A data) control ON/OFF of transistor 214 by a NOR component 211. A node Vo_A 215 which transistor 213 and transistor 214 are connected to outputs to bus 10 which A drive and B drive share. In addition, data of B drive (B data) and output enable signal of B drive (B_OE) control ON/OFF of transistor 219 by a NAND component 216. Moreover, output enable signal of B drive (B_OE) which goes through a NOT component 218 first and data of B drive (B data) control ON/OFF of transistor 220 by a NOR component 217. A node Vo_B 221 which transistor 219 and transistor 220 are connected to outputs to bus 10 which A drive and B drive share.
When output enable signal of A drive (hereinafter, A_OE) is low, the transistor 213 and the transistor 214 of A drive are both off, A drive is therefore disabled. When A_OE is high and data of A drive (hereinafter, A data) is high, the transistor 213 turns on so that the power voltage Vdd goes through the transistor 213 to Vo_A 215. Vo_A 215 is therefore high and a high level is inputted to the bus 10. On the contrary, When A_OE is high and A data is low, the transistor 214 turns on so that the ground voltage goes through the transistor 214 to Vo_A 215. Vo_A 215 is therefore low and a low level is inputted to the bus 10.
Moreover, when output enable signal of B drive (hereinafter, B_OE) is low, the transistor 219 and the transistor 220 of B drive are both off, B drive is therefore disabled. When B_OE is high and data of B drive (hereinafter, B data) is high, the transistor 219 turns on so that the power voltage Vdd goes through the transistor 219 to Vo_B 221. Vo_B 221 is therefore high and a high level is inputted to the bus 10. On the contrary, When B_OE is high and B data is low, the transistor 220 turns on so that the ground voltage goes through the transistor 220 to Vo_B 221. Vo_B 221 is therefore low and thus a low level is inputted to the bus 10.
The above description only demonstrates that A drive or B drive is enabled when their respective output enable signal (A_OE or B_OE) is high. However, a person skilled in the art may also make A drive or B drive is enabled when their respective output enable signal (A_OE or B_OE) is low. Furthermore, to enhance the pull-up and pull-down cabability of tri-state I/O ports adopted by A drive and B drive, a number of transistors may be put in parallel with transistor 213, transistor 214, transistor 219 or transistor 220.
If a turn around time is not defined by the protocol of data transmission, no effects would do to the tri-state I/O ports adopts by A drive and B drive when A drive and B drive are both enabled, and A data and B data are both high/low, However, when A drive and B drive are both enabled, and A data and B data are at different digital level, the tri-state I/O ports adopted by A drive or B drive may suffer from power dissipation or unstable system problem. Hereinafter, there will be described in detail.
If A drive and B drive are both enabled, and A data is high while B data is low, the transistor 213 and the transistor 220 thus both turn on. The current from the power source Vdd which goes through the transistor 213 and the transistor 220 to the ground will be very large because the transistor 213 and the transistor 220 have low impedances. The large current penetrates the transistor 213 and the transistor 220, therefore the transistor 213 and the transistor 220 are damaged which results in that the tri-state I/O port adopted by A drive or B drive suffers from power dissipation or unstable system problem. Or if A drive and B drive are both enabled, and A data is low while B data is high, the transistor 214 and the transistor 219 thus both turn on. The current from the power source Vdd which goes through the transistor 219 and the transistor 214 to the ground will be very large because the transistor 214 and the transistor 219 have low impedances. The large current penetrates the transistor 214 and the transistor 219, therefore the transistor 214 and the transistor 219 are damaged which results in that the tri-state I/O port adopted by A drive or B drive suffers from power dissipation or unstable system problem.
In view of prior art, a turn around time must be added when bus mastering switches to prevent from bus contention, extra power dissipation or unstable system problems, under the circuit structure of the tri-state I/O port mentioned above. However, adding a turn around time is a safe solution but also leads to a problem for decreasing the data transmission speed of system. Therefore, how to design a tri-state I/O port which transmits data more effectively and is not damaged when bus contention happens is the subject matter of the present invention.